#include <linux/kernel.h>        
#include <linux/module.h>        
#include <linux/sched.h>          
#include <linux/sched/signal.h>   // 提供 for_each_process 宏

int init_module(void)
{
    struct task_struct *task;               // 定义指向任务结构体的指针

    printk(KERN_INFO "Loading task_6 module: printing all process names...\n");

    // 遍历所有任务并打印任务名
    for_each_process(task) {                // for_each_process 宏会遍历整个任务链表
        printk(KERN_INFO "Process: %s\n", task->comm); // 打印任务名
    }

    return 0; 
}

// 模块清理函数
void cleanup_module(void)
{
    printk(KERN_INFO "Unloading task_6 module...\n");
}

MODULE_LICENSE("GPL");            // 设置模块许可证为 GPL